home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 July: Mac OS SDK / Dev.CD Jul 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / PInterfaces / Interrupts.p < prev    next >
Encoding:
Text File  |  1996-09-22  |  3.1 KB  |  115 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Interrupts.p
  3.  
  4.      Contains:    Interface to the Interrupt Manager
  5.  
  6.      Version:    Technology:    PowerSurge 1.0.2
  7.                  Package:    Universal Interfaces 2.1.4
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs@applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. }
  19.  
  20. {$IFC UNDEFINED UsingIncludes}
  21. {$SETC UsingIncludes := 0}
  22. {$ENDC}
  23.  
  24. {$IFC NOT UsingIncludes}
  25.  UNIT Interrupts;
  26.  INTERFACE
  27. {$ENDC}
  28.  
  29. {$IFC UNDEFINED __INTERRUPTS__}
  30. {$SETC __INTERRUPTS__ := 1}
  31.  
  32. {$I+}
  33. {$SETC InterruptsIncludes := UsingIncludes}
  34. {$SETC UsingIncludes := 1}
  35.  
  36. {$IFC UNDEFINED __TYPES__}
  37. {$I Types.p}
  38. {$ENDC}
  39.  
  40. {$PUSH}
  41. {$ALIGN MAC68K}
  42. {$LibExport+}
  43.  
  44. {   Interrupt types   }
  45.  
  46. TYPE
  47.     InterruptSetID = ^LONGINT;
  48.     InterruptMemberNumber                = LONGINT;
  49.     InterruptSetMemberPtr = ^InterruptSetMember;
  50.     InterruptSetMember = RECORD
  51.         setID:                    InterruptSetID;
  52.         member:                    InterruptMemberNumber;
  53.     END;
  54.  
  55.  
  56. CONST
  57.     kISTChipInterruptSource        = 0;
  58.     kISTOutputDMAInterruptSource = 1;
  59.     kISTInputDMAInterruptSource    = 2;
  60.     kISTPropertyMemberCount        = 3;
  61.  
  62.  
  63. TYPE
  64.     ISTProperty                            = ARRAY [0..2] OF InterruptSetMember;
  65.     InterruptReturnValue                = LONGINT;
  66.  
  67. CONST
  68.     kFirstMemberNumber            = 1;
  69.     kIsrIsComplete                = 0;
  70.     kIsrIsNotComplete            = -1;
  71.     kMemberNumberParent            = -2;
  72.  
  73.  
  74. TYPE
  75.     InterruptSourceState                = BOOLEAN;
  76.  
  77. CONST
  78.     kSourceWasEnabled            = 1;
  79.     kSourceWasDisabled            = 0;
  80.  
  81.  
  82. TYPE
  83.     InterruptHandler = ProcPtr;  { FUNCTION InterruptHandler(ISTmember: InterruptSetMember; refCon: UNIV Ptr; theIntCount: UInt32): InterruptMemberNumber; C; }
  84.  
  85.     InterruptEnabler = ProcPtr;  { PROCEDURE InterruptEnabler(ISTmember: InterruptSetMember; refCon: UNIV Ptr); C; }
  86.  
  87.     InterruptDisabler = ProcPtr;  { FUNCTION InterruptDisabler(ISTmember: InterruptSetMember; refCon: UNIV Ptr): ByteParameter; C; }
  88.  
  89.  
  90. CONST
  91.     kReturnToParentWhenComplete    = $00000001;
  92.     kReturnToParentWhenNotComplete = $00000002;
  93.  
  94.  
  95. TYPE
  96.     InterruptSetOptions                    = OptionBits;
  97.     
  98. {   Interrupt Services   }
  99. FUNCTION CreateInterruptSet(parentSet: InterruptSetID; parentMember: InterruptMemberNumber; setSize: InterruptMemberNumber; VAR setID: InterruptSetID; options: InterruptSetOptions): OSStatus; C;
  100. FUNCTION InstallInterruptFunctions(setID: InterruptSetID; member: InterruptMemberNumber; refCon: UNIV Ptr; handlerFunction: InterruptHandler; enableFunction: InterruptEnabler; disableFunction: InterruptDisabler): OSStatus; C;
  101. FUNCTION GetInterruptFunctions(setID: InterruptSetID; member: InterruptMemberNumber; VAR refCon: UNIV Ptr; VAR handlerFunction: InterruptHandler; VAR enableFunction: InterruptEnabler; VAR disableFunction: InterruptDisabler): OSStatus; C;
  102. FUNCTION ChangeInterruptSetOptions(setID: InterruptSetID; options: InterruptSetOptions): OSStatus; C;
  103. FUNCTION GetInterruptSetOptions(setID: InterruptSetID; VAR options: InterruptSetOptions): OSStatus; C;
  104.  
  105. {$ALIGN RESET}
  106. {$POP}
  107.  
  108. {$SETC UsingIncludes := InterruptsIncludes}
  109.  
  110. {$ENDC} {__INTERRUPTS__}
  111.  
  112. {$IFC NOT UsingIncludes}
  113.  END.
  114. {$ENDC}
  115.